<?php
namespace Home\Model;
class IndexModel {
	//回复多图文类型的微信消息
	public function responseNews($postObj ,$arr){
		$toUser = $postObj->FromUserName;
		$fromUser = $postObj->ToUserName;
		$template = "<xml>
					<ToUserName><![CDATA[%s]]></ToUserName>
					<FromUserName><![CDATA[%s]]></FromUserName>
					<CreateTime>%s</CreateTime>
					<MsgType><![CDATA[%s]]></MsgType>
					<ArticleCount>".count($arr)."</ArticleCount>
					<Articles>";
		foreach($arr as $k=>$v){
			$template .="<item>
						<Title><![CDATA[".$v['title']."]]></Title> 
						<Description><![CDATA[".$v['description']."]]></Description>
						<PicUrl><![CDATA[".$v['picUrl']."]]></PicUrl>
						<Url><![CDATA[".$v['url']."]]></Url>
						</item>";
		}
		
		$template .="</Articles>
					</xml> ";
		echo sprintf($template, $toUser, $fromUser, time(), 'news');
	}

	// 回复单文本
	public function responseText($postObj,$content){
		$template = "<xml>
		<ToUserName><![CDATA[%s]]></ToUserName>
		<FromUserName><![CDATA[%s]]></FromUserName>
		<CreateTime>%s</CreateTime>
		<MsgType><![CDATA[%s]]></MsgType>
		<Content><![CDATA[%s]]></Content>
		</xml>";
		//注意模板中的中括号 不能少 也不能多
		$fromUser = $postObj->ToUserName;
		$toUser   = $postObj->FromUserName; 
		$time     = time();
		$msgType  = 'text';
		echo sprintf($template, $toUser, $fromUser, $time, $msgType, $content);
	}

	//回复微信用户的关注事件
	public function responseSubscribe($postObj, $content){
		
		$this->responseText($postObj,$content);
	}


//根据用户抽奖的次数来生成中奖的积分
	public function produce_score( $times ){
		if($times==1){
			return intval(rand(0,3));
		}
		if( $times>=2 && $times<=4 ){
			$point = intval(rand(1,100));
			//得到积分10~20的概率为80%，得到1~9的概率为20%
			if($point<=20){
				return intval(rand(1,9));
			}else{
				return intval(rand(10,20));
			}
		}
		//抽奖五次到七次之间，可得到1~10的积分概率为70%，得到11~20的概率为30%
		if( $times>=5 && $times<=7 ){
			$point = intval(rand(1,100));
			//得到积分10~20的概率为70%，得到1~9的概率为30%
			if($point<=70){
				return intval(rand(1,10));
			}else{
				return intval(rand(11,20));
			}
		}
		//抽奖七次后，可得到1~10的积分
		if( $times>7 ){
			return intval(rand(1,10));
		}
	}

	//更新重置用户每天游戏已玩次数
	public function update_GoTimes($user){
		//判断当前日期与用户上次登录是否为同一天,
		//新增一字段last_time
		$last_time = $user->last_time;
		if( date('Ymd',$last_time) != date('Ymd') ){
			//不是同一天，将用户抽奖次数更新为1
			$user->go_times = 1;
			$user->save();
		}

		//如果不是同一天则设置所有用户的游戏次数为1
	}


//判断用户积分是否足够抽奖
	public function is_enough_score($user,$multiple=1){
		//用户抽奖消耗的积分
		$consume_score  = $multiple*10;
		//用户的积分总数
		$ScoreNo = $user->ScoreNo;
		if( $ScoreNo>=$consume_score ){
			return true;
		}else{
			return false;
		}
	}



	//积分处理接口
	/**
	*user 当前用户
	*result_score 抽奖的结果积分
	*multiple 抽奖时选择加倍的倍率
	*/
	public function score_deal($user,$result_score,$multiple=1){
		
		if($user->go_time==1){
			//用户第一次抽奖不消耗积分
			$consume_score = 0;
		}else{
			//用户第二次之后抽奖消耗的积分
			$consume_score  = $multiple*10;
		}
		//用户开奖后中的积分
		$result_score = $result_score*$multiple;
		//获得用户未抽奖前的个人积分
		$ScoreNo = $user->ScoreNo;
		//抽奖后用户的个人积分
		$user->ScoreNo = $ScoreNo-$consume_score+$result_score;
		//更新抽奖次数,新增一字段go_times
		$user->go_time +=1;
		$user->save();
	}


	/**
	*  判断是否第一次启动奶袋的惊喜这个游戏
	*  1表示首次启动 
	*  -1表示尚未启动过
	*  0表示非首次启动,不做任何处理
	*/
	public function checkFirst_startLansinoh(){

	}


	//奶袋的惊喜,游戏结果处理
	/**
	*   $_POST['result']
	*返回参数为 1表示处理成功 -1表示用户积分不足
	*/
	public function dealwith_Lansinoh($user,$score){
		//判断用户是否有足够的积分
		if( $user->ScoreNo <15 ){
			return -1;
		}
		//根据进洞的参数，获得不同的积分
		if( $score==0 ){
			$obtain_score = 0;
		}else if( $score==1 ){
			$obtain_score = 10;
		}else if( $score==2 ){
			$obtain_score = 20;
		}else{
			$obtain_score = 30;
		}
		//用户每次游戏消耗的积分
		$consume_score = 15;
		//用户更新后的积分总数
		$user->ScoreNo = $user->ScoreNo -15+$obtain_score;
		$user->save();
		return 1;
	}	

}
